-
Notifications
You must be signed in to change notification settings - Fork 5
More general truncation and algorithm selection in orth/null #19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
I definitely like this approach. The only thing I wonder about is if the |
I refactored the logic a bit, hopefully it is now friendlier for humans and compilers. (I can double check the type stability but it looks good so far.) |
|
I considered having separate keyword arguments |
|
I agree that would be excessive and like the current approach. The test breaking seems to be because this is based on an older version where |
Yes, I just merged the changes to #18 into this branch so I'll be able to fix that now. I'll go through and update tests, add new tests, update the other orth and null functions, etc. |
Codecov ReportAttention: Patch coverage is
🚀 New features to boost your workflow:
|
|
Ok, this PR is ready for a review, I've updated The most awkward part of this new design is deciding how to interpret The latest design is that if you pass However, if you pass a The choices I see are:
Curious to hear your thoughts on that, I'm definitely open to suggestions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall definitely a nice set of improvements, I like the interface with the alg_qr, alg_svd, ... different options.
I left some minor comments, and we may consider using the alg=algstruct keywords or not.
Otherwise, given that this is definitely a breaking change, do we want to plan what we want to include in v0.2? It seems like at least the copy_input with alg argument might also be bundled in that release, since that would be breaking. I think the string macros wouldn't be breaking so that could go anywhere inbetween.
I would definitely say that we can leave the CUDA stuff to v0.3
It also looks like the branch is out of date with the main, so maybe you could merge/rebase?
That plan sounds good to me. Regarding the string macro, it would be breaking if we decide to delete the aliases and just use string macros to refer to algorithm types. I don't have a very strong opinion on that, just bringing it up as a point of discussion.
I merged, I wasn't able to rebase. |
|
Thanks for all of the comments and corrections, I think I addressed all of them. |
lkdvos
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Found a typo and small suggestion for where to put a function, but otherwise this looks good to me!
Co-authored-by: Lukas Devos <[email protected]>
Co-authored-by: Jutho <[email protected]> Co-authored-by: Lukas Devos <[email protected]>
This is a work in progress for allowing more general truncation and algorithm selection in orth/null. So far I've only worked on
left_orth!so I can get feedback on the design. Also some of the tests will depend on #18 getting merged in order to work with the new design.@lkdvos and @Jutho, I'm curious to hear your thoughts, particularly related to the design for selecting the algorithms of different factorizations.
The basic idea is that you can select an algorithm or a set of keyword arguments for the default algorithm of each factorization separately, for example: